1. Field of the Invention
This invention relates generally to Ethernet devices. More particularly, it relates to an efficient and cost effective manner of automatically assigning a quality of service to an Ethernet packet.
2. Background
Ethernet is a widely-installed local area network (LAN) technology. Using an Ethernet interface, many computer devices can communicate with one another over a LAN. Ethernet is specified in a well known standard, IEEE 802.3.
An Ethernet LAN typically uses twisted pair wires or coaxial cable. The most commonly installed Ethernet systems are called 10Base-T and provide transmission speeds up to 10 megabits per second (MBPS). Fast Ethernet, or 100Base-T, provides transmission speeds up to 100 Mbps.
Ethernet devices can transmit packets using a wide range of packet sizes, e.g. from 60 bytes up to 1514 bytes. Ethernet uses a wide range of packet sizes because it is intended for data streams.
Recently there has been growing interest in converging additional types of traffic, e.g., voice stream traffic on a single infrastructure such as an Ethernet network. Converging voice and data traffic allows for lower costs while optimizing network utilization.
However, data streams and voice streams have different characteristics. Data streams tend to use large packets which are transmitted at relatively high, variable data rates, e.g., greater than 400 bytes and 100-400 kbps. Data streams also tend to transmit data packets in “bursts” at random times.
Unlike data streams, voice streams tend to use “short” packets which are transmitted at a relatively low constant bit rate, e.g., less than 400 bytes and less than 100 kbps.
In order to provide telephony (i.e. voice) services that approximate traditional telephones over a network, voice streams containing voice information must be handled differently than data streams.
FIG. 6 shows conceptually how a conventional Ethernet device may handle a voice stream and data stream at the same time. A conventional Ethernet device 600 provides a high priority queue 604 and a low priority queue 605. Packets in the high priority queue 604 are processed preferentially over packets in the low priority queue 605.
Input stream 610 includes a low priority data packet 603 which arrives first at Ethernet device 600, a voice stream comprised of voice packets 601a and 601b, and a high priority data packet 602. Voice packets 601a and 601b and high priority data packet 602 are directed to the high priority queue 604. Low priority data packet 603 is directed to the low priority queue 605.
Output stream 611 illustrates how the Ethernet device 600 preferentially processes packets in the high priority data queue 604. Although low priority data packet 603 arrived first, the low priority data packet 603 is transmitted last in the output stream as output packet 609. Voice packets 601a and 601b and high priority data packet 602 are transmitted preferentially as output packets 607a, 608, and 607b respectively.
Conventional Ethernet devices generally direct packets to a particular priority queue by evaluating their MAC addresses, by using the 802.1protocol, or by inspecting the contents of the Ethernet packet and evaluating the higher-level protocols contained inside. In particular, the IEEE has extended the Ethernet protocol via 802.1p to add a field that explicitly assigns packets to priority queues.
FIG. 7 shows a more detailed view of a typical Ethernet device which provides multiple priority queues.
In particular, as shown in FIG. 7, a conventional Ethernet device 500 includes an input queue 501, and input controller 502 with an explicit configuration 504, a series of output queues 503 to 503n, an ouput controller 505, and a transmit queue 506.
The input queue 501 receives incoming data packets and buffers them until they are evaluated by the input controller 502.
The input controller 503 interrrogates packets buffered in the input queue 501 and evaluates their contents (i.e. MAC address). The input controller 502 typically uses explicit configuration 504 to decide which output queue (i.e. output queues 503 to 503n) to forward the packet.
Output queues 503-503n allow a packet to be buffered until it is serviced by the output controller 505. The output controller 505 prepares the packet for transmission and forwards the packet to the transmit queue 506.
Packets in the transmit queue 506 are then transmitted to the Ethernet LAN 507.
Unfortunately, conventional Ethernet devices require a complex explicit configuration to provide multiple priorities. Explicit configurations require trained personnel to design the settings and to enter them into the conventional Ethernet device.
The Ethernet network could perhaps implement the 802.1p priority mechanism. However, for the 802.1p mechanism to work properly, all end points in the network must include software that is 802.1p-aware, which is capable of accessing the 802.1p mechanism in the network, and all Ethernet switches in the network must be 802.1p compliant for the packets to propagate correctly through the network.
Maintaining a staff of trained personnel is difficult for small or medium sized organizations which often do not even have a full-time network manager.
Furthermore, an explicit configuration must continually be updated by a trained person whenever a change occurs in the Ethernet LAN. Thus, conventional Ethernet devices which require explicit configurations are difficult to maintain and prone to errors.
Accordingly, there is a need for a technique and device which provides the quality of service available in an explicitly-managed device, without requiring trained personnel to manually configure and maintain the Ethernet device.